home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Tools & Utilities
/
Collection of Tools and Utilities.iso
/
bbsutil
/
bsrc_250.zip
/
INCLUDES.H
< prev
next >
Wrap
C/C++ Source or Header
|
1991-09-15
|
10KB
|
300 lines
/*--------------------------------------------------------------------------*/
/* */
/* */
/* ------------ Bit-Bucket Software, Co. */
/* \ 10001101 / Writers and Distributors of */
/* \ 011110 / Freely Available<tm> Software. */
/* \ 1011 / */
/* ------ */
/* */
/* (C) Copyright 1987-91, Bit Bucket Software Co., a Delaware Corporation. */
/* */
/* */
/* Common Include Files for BinkleyTerm */
/* */
/* */
/* For complete details of the licensing restrictions, please refer */
/* to the License agreement, which is published in its entirety in */
/* the MAKEFILE and BT.C, and also contained in the file LICENSE.250. */
/* */
/* USE OF THIS FILE IS SUBJECT TO THE RESTRICTIONS CONTAINED IN THE */
/* BINKLEYTERM LICENSING AGREEMENT. IF YOU DO NOT FIND THE TEXT OF */
/* THIS AGREEMENT IN ANY OF THE AFOREMENTIONED FILES, OR IF YOU DO */
/* NOT HAVE THESE FILES, YOU SHOULD IMMEDIATELY CONTACT BIT BUCKET */
/* SOFTWARE CO. AT ONE OF THE ADDRESSES LISTED BELOW. IN NO EVENT */
/* SHOULD YOU PROCEED TO USE THIS FILE WITHOUT HAVING ACCEPTED THE */
/* TERMS OF THE BINKLEYTERM LICENSING AGREEMENT, OR SUCH OTHER */
/* AGREEMENT AS YOU ARE ABLE TO REACH WITH BIT BUCKET SOFTWARE, CO. */
/* */
/* */
/* You can contact Bit Bucket Software Co. at any one of the following */
/* addresses: */
/* */
/* Bit Bucket Software Co. FidoNet 1:104/501, 1:343/491 */
/* P.O. Box 460398 AlterNet 7:491/0 */
/* Aurora, CO 80046 BBS-Net 86:2030/1 */
/* Internet f491.n343.z1.fidonet.org */
/* */
/* Please feel free to contact us at any time to share your comments about */
/* our software and/or licensing policies. */
/* */
/*--------------------------------------------------------------------------*/
/*
* This file drives all the defines and includes in BinkleyTerm. In
* here we handle cross-compiler portability issues. It was originally
* born to make compiled headers (a neat feature of Borland C) work,
* but the other role quickly caught on as well.
*
* Some of the portability stuff will no doubt wind up in other Bink
* include files -- but the system-level stuff such as utime, etc
* is all dealt with here.
*
* All main Bink modules should include this file before any specific
* local includes.
*
*/
/* System include files */
#include <stdio.h>
#include <signal.h>
#include <ctype.h>
#ifdef MEWEL
#include <Window.H>
#include <WinDecls.H>
#include <GSDfn.H> /* ?????? */
#endif
#if ( !defined(MEWEL) & defined(MILQ) )
#define MILQ
#include <Windows.H>
#include <GSDfn.H> /* ?????? */
#endif
#ifndef MILQ
#include <conio.h>
#endif
#include <string.h>
#include <process.h>
#include <stdlib.h>
#include <stdarg.h>
#include <io.h>
#include <dos.h>
#include <errno.h>
#include <time.h>
#include <sys\types.h>
#include <sys\stat.h>
#include <fcntl.h>
#include <share.h>
/*
* Compiler-specific stuff. The baseline in this sucker is
* Microsoft C 6.00a. Below what you see are the includes and
* macros we need to differentiate individual compilers from
* the baseline.
*
* The easiest way to add a new compiler is to replicate the
* _MSC_VER section using whatever manifest constant your
* compiler uses to identify itself, then do the fixups in
* that section.
*
* Be sure to put your section before that last define for
* COMPILER_NAME!
*
*/
#ifdef __TURBOC__ /* Borland C++ 2.0 */
/*
* Borland.
*
* No sharing stream open. (s)open/fdopen works, though.
* Signal call is non-generic and incompatible
* Read/Write to far memory in near model not implemented
* Console output non-generic
* No utime call
*
*/
#ifdef __BORLANDC__
#define COMPILER_NAME "-Borland"
#else
#define COMPILER_NAME "-Turbo"
#endif
#define MUST_FDOPEN /* Share streams: sopen+fdopen */
#define NO_SIGNALS /* Don't install a signal handler */
#define NEED_DOSREAD /* Need our own _dos_(read/write) */
#define NEED_CPUTS /* Need our own cputs */
#define NEED_PUTCH /* Need our own putch */
#define NEED_CPRINTF /* Need our own cprintf */
struct utimbuf {
time_t actime; /* access time */
time_t modtime; /* modification time */
};
typedef struct utimbuf UTIMBUF;
int cdecl utime(char *, struct utimbuf *);
#define UT_ACTIME actime
typedef long off_t;
#include <mem.h>
#include <dir.h>
#include <alloc.h>
#define _fmalloc(n) farmalloc (n)
#define _ffree(n) farfree (n)
#undef sopen /* we don't want to use all the args */
#define sopen(a,b,c) open (a, b|c)
#endif
#ifdef _MSC_VER /* Microsoft C 5.1 or 6.0a */
/*
* Microsoft.
*
* By and large, it's Microsoft compatible <grin>
*
* MSC 5.10 and below has no way to open a stream in
* sharing mode. sopen/fdopen doesn't work.
*
*/
#if _MSC_VER == 510
#define COMPILER_NAME "-uSoft5.1"
#endif
#if _MSC_VER == 600
#define COMPILER_NAME "-uSoft6.0"
#endif
#if _MSC_VER < 600
#define CANT_FSOPEN
#endif
#include <sys/utime.h>
typedef struct utimbuf UTIMBUF;
#define UT_ACTIME actime
#include <memory.h>
#include <direct.h>
#include <malloc.h>
#endif
#ifdef __WATCOMC__ /* WATCOM C 8.0 */
/*
* WATCOM.
*
* No sharing stream open. sopen/fdopen doesn't work.
* No mktemp call
* utime structure member naming different
*
*/
#define COMPILER_NAME "-WATCOM"
#define CANT_FSOPEN /* No way to share streams */
#define NEED_MKTEMP /* Need our own mktemp */
#include <sys/utime.h>
typedef struct utimbuf UTIMBUF;
#define UT_ACTIME acctime /* WCC acctime = actime */
#include <direct.h>
#include <malloc.h>
#endif
#ifdef __ZTC__ /* Zortech C++ 3.0 */
/*
* Zortech.
*
* No sharing stream open. sopen/fdopen doesn't work.
* Signal handler stuff incompatible
* Read/Write to far memory in near model not implemented
* No console I/O functions
* No mktemp call
* utime doesn't use a structure
* no ultoa, we use more limited ltoa
* tzset not there or needed
*
*/
#define COMPILER_NAME "-Zortech"
#define CANT_FSOPEN /* No way to share streams */
#define NO_SIGNALS /* Don't install a signal handler */
#define NEED_DOSREAD /* Need our own _dos_(read/write) */
#define NEED_CPUTS /* Need our own cputs */
#define NEED_PUTCH /* Need our own putch */
#define NEED_MKTEMP /* Need our own mktemp */
struct utimbuf {
time_t actime; /* access time */
time_t mo